package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import model.Cadastro;



public class ContatoDAO {
	 private Connection connection= new Conexao().open() ;
	 private String opcao;
	 private String id;
	public void setOpcao(String opcao) {
		this.opcao = opcao;
	}
	
	public void setId(String id) {
		this.id = id;
	}

	
	
  
	public ContatoDAO(Connection connection){
    	this.connection = connection; 
     }
     public ContatoDAO(){
     	
      }
      
     public void inserir(Cadastro cadastro){
    	String insert =  "insert into contatos(cep, rua, numero, bairro, complemento," +
    			"nome, sobrenome, telefone, celular, email)  values(?,?,?,?,?,?,?,?,?,?);";
    	
    	PreparedStatement statement;
    	try {
    		statement = this.connection.prepareStatement(insert);
			statement.setString(1, cadastro.getCep());
			statement.setString(2, cadastro.getRua());
			statement.setString(3, cadastro.getNumero());
			statement.setString(4, cadastro.getBairro());
			statement.setString(5, cadastro.getComplemento());			
			statement.setString(6, cadastro.getNome());
			statement.setString(7, cadastro.getSobrenome());
			statement.setString(8, cadastro.getTelefone());
			statement.setString(9, cadastro.getCelular());
			statement.setString(10, cadastro.getEmail());
			statement.execute();
		}
    	catch (SQLException e) {
				  e.printStackTrace();
		  }
    	
     }
     public  List<Cadastro> getListaTodos(){
    	 List<Cadastro> list = new ArrayList<Cadastro>();
    	  String select = "select idContato, nome, sobrenome, telefone, celular, email, cep, rua, numero, bairro, complemento from contatos; ";
    	  Statement statement;
      	try {
      		statement = this.connection.createStatement();
      		ResultSet set = statement.executeQuery(select);
      		while(set.next()){
      			 Cadastro cadastro = new Cadastro();
      			 String idCadastro = set.getString("idContato");
      			 String nome = set.getString("nome");
      			 String  sobrenome= set.getString("sobrenome");
      			 String  telefone = set.getString("telefone") ;
      			 String   celular =set.getString("celular");
      			 String   email =set.getString("email");
      			 String   cep = set.getString("cep");
      			 String  rua = set.getString("rua") ;
      			 String   numero= set.getString("numero");
      		     String   bairro =set.getString("bairro");
      			 String  complemento=set.getString("complemento");
      			 cadastro.setIdCadastro(idCadastro);
      			 cadastro.setBairro(bairro);
      			 cadastro.setCelular(celular);
      			 cadastro.setCep(cep);
      			 cadastro.setComplemento(complemento);
      			 cadastro.setEmail(email);
      			 cadastro.setNome(nome);
      			 cadastro.setNumero(numero);
      			 cadastro.setRua(rua);
      			 cadastro.setSobrenome(sobrenome);
      			 cadastro.setTelefone(telefone);
      			 list.add(cadastro);
      		}
      		
      		}
      	catch(SQLException e){
      		e.printStackTrace();
      	}
      	return list;
     }
     
      public Cadastro getCadastro(){
    	  Cadastro cadastro = new Cadastro();
    	  String select = "select idContato, nome, sobrenome, telefone, celular, email, cep, rua, numero, bairro, complemento from contatos where idContato = "+id+";";
    	  Statement statement;
      	try {
      		statement = this.connection.createStatement();
      		ResultSet set = statement.executeQuery(select);
      		if(set.next()){
      			 
      			 String idCadastro = set.getString("idContato");
      			 String nome = set.getString("nome");
      			 String  sobrenome= set.getString("sobrenome");
      			 String  telefone = set.getString("telefone") ;
      			 String   celular =set.getString("celular");
      			 String   email =set.getString("email");
      			 String   cep = set.getString("cep");
      			 String  rua = set.getString("rua") ;
      			 String   numero= set.getString("numero");
      		     String   bairro =set.getString("bairro");
      			 String  complemento=set.getString("complemento");
      			 cadastro.setIdCadastro(idCadastro);
      			 cadastro.setBairro(bairro);
      			 cadastro.setCelular(celular);
      			 cadastro.setCep(cep);
      			 cadastro.setComplemento(complemento);
      			 cadastro.setEmail(email);
      			 cadastro.setNome(nome);
      			 cadastro.setNumero(numero);
      			 cadastro.setRua(rua);
      			 cadastro.setSobrenome(sobrenome);
      			 cadastro.setTelefone(telefone);
      			 
      		}
      		
      	}
      	catch(SQLException e){
      		e.printStackTrace();
      	}
      	return cadastro;
     }
     public void update(Cadastro cadastro){
    	 String update= "UPDATE contatos SET nome = '"+cadastro.getNome()+"', sobrenome = '"+cadastro.getSobrenome()+"',telefone = '"+cadastro.getTelefone()+"', celular = '" +
    	 		" "+cadastro.getCelular() +"', rua = '"+cadastro.getRua()+"', numero = '"+cadastro.getNumero()+"', bairro= '"+cadastro.getBairro()+"', complemento = '"+cadastro.getComplemento()
    	 		+"',cep = '"+cadastro.getCep()+"', email = '"+cadastro.getEmail()+"' WHERE idContato = "+cadastro.getIdCadastro();
    	 PreparedStatement statement ;
     	try {
     		statement = this.connection.prepareStatement(update);
     		statement.execute();
     		System.out.println("Up Ok");
     	}
     	catch(SQLException e){
     		e.printStackTrace();
     	}
     }
     
     public  List<Cadastro> getCadastroBusca(){
   	  
   	List<Cadastro> list = new ArrayList<Cadastro>();
   	String select="";
   	 if(opcao.equals("id")){
   	   select = "select idContato, nome, sobrenome, telefone, celular, email, cep, rua, numero, bairro, complemento from contatos where idContato = "+id;
   	 }
   	if(opcao.equals("nome")){
    	   select = "select idContato, nome, sobrenome, telefone, celular, email, cep, rua, numero, bairro, complemento from contatos where nome = '"+id+"'";
    	 }
   	if(opcao.equals("sobrenome")){
    	   select = "select idContato, nome, sobrenome, telefone, celular, email, cep, rua, numero, bairro, complemento from contatos where sobrenome = '"+id+"'";
     }
   	  Statement statement;
  	try {
  		statement = this.connection.createStatement();
  		ResultSet set = statement.executeQuery(select);
  		while(set.next()){
  			 Cadastro cadastro = new Cadastro();
  			 String idCadastro = set.getString("idContato");
  			 String nome = set.getString("nome");
  			 String  sobrenome= set.getString("sobrenome");
  			 String  telefone = set.getString("telefone") ;
  			 String   celular =set.getString("celular");
  			 String   email =set.getString("email");
  			 String   cep = set.getString("cep");
  			 String  rua = set.getString("rua") ;
  			 String   numero= set.getString("numero");
  		     String   bairro =set.getString("bairro");
  			 String  complemento=set.getString("complemento");
  			 cadastro.setIdCadastro(idCadastro);
  			 cadastro.setBairro(bairro);
  			 cadastro.setCelular(celular);
  			 cadastro.setCep(cep);
  			 cadastro.setComplemento(complemento);
  			 cadastro.setEmail(email);
  			 cadastro.setNome(nome);
  			 cadastro.setNumero(numero);
  			 cadastro.setRua(rua);
  			 cadastro.setSobrenome(sobrenome);
  			 cadastro.setTelefone(telefone);
  			 list.add(cadastro);
  		}
  		
  		}
  	catch(SQLException e){
  		e.printStackTrace();
  	}
  	return list;
 }
     public void delete(){
    	String delete = "delete from contatos where idContato = "+ id;
    	 PreparedStatement statement ;
     	try {
     		statement = this.connection.prepareStatement(delete);
     		statement.execute();
     		System.out.println("delete Ok");
     	}
     	catch(SQLException e){
     		e.printStackTrace();
     	}
     }	 
    	 
}
